
/*********************************************************************************************************************************************
* CLASS NAME : BCGame
* 
* PURPOSE : 
*
* This is the top most class.To create a game it is enough to create one class of this type.
* All entity lists and game realated operations are implemented in this class (draw game , draw highscore , draw gameover etc)

* Derived From : BCCore
**********************************************************************************************************************************************/






#ifndef BC_GAME
#define BC_GAME


#include "BC_Core.h"
#include "BC_Player.h"


class BCGame : public BCCore
{

	public :

		BCGame(int screenWidth , int screenHeight , int screenDepth , bool fullscreen);

		virtual ~BCGame();
		void drawAll();
		

		// returns false when the user presses the close button or escape etc...
		bool isGameRunning();

		
		// loads the global texture with the given filename.
		void loadTexture(const std::string& path);


		BCPlayer * getPlayer1(){return player1;}

	private:


		// Used for LOST DEVICE handling :

		void destroyResources();
		void reloadResources();

		std::string texturePath;

		// our main texture : (tiles tanks , and stofe)
		LPDIRECT3DTEXTURE9 mainTexture;

		LPD3DXSPRITE dummy;

		// game players :
		BCPlayer * player1 , *player2;


};









#endif































